package org.ch02.test01.demo01;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;

/**
 * 获取某个类的 Class 对象 - 方法一
 * Class.forName("包名.类名")
 *
 * 注意：此案例没有反射到底
 *
 * @author lwj
 * @date 2025-03-17
 * @vesion 1.0.0
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception{
        // 1.获取 Student 类的 Class 对象
        Class<?> clazz = Class.forName("org.ch02.entity.Student");

        // 在反射中，把类相关信息封装为相关的对象
        // 2.获取类的构造方法对象 - Constructor
        Constructor<?> constructor = clazz.getConstructor();

        // 3.实例化对象
        Object object = clazz.newInstance();

        // 4.向下转型
        Student student = (Student)object;

        // 5.调用方法
        student.sayHello("龚靖皓");
    }
}
